/*
 * @Description:Animal - 抽象类
 * 
 * @Author: rendc
 * 
 * @Date: 2025-08-05 09:10:02
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-08-05 14:58:24
 */

public abstract class Animal2 {
  // 抽象类不能被实例化对象
  // 实际使用中 本身也不会创建动物类的对象
  // 抽象类可以包含成员属性
  // 属性
  private String color;
  private int age;

  // 抽象类中可以包含构造器
  public Animal2() {
  }

  public Animal2(String color, int age) {
    this.color = color;
    this.age = age;
  }

  // 抽象类可以包含成员方法
  @Override
  public String toString() {
    return "Animal [color:]" + color + ",age:" + age + "]";
  }

  // 抽象类可以包含抽象方法
  // 行为
  // 父类中的方法功能是不明确的
  // 不明确的方法就不要写内容
  // 所以可以定义为抽象方法
  // 抽象方法的关键字
  // 抽象方法没有方法体 没有{}
  // 因为类中有抽象方法 所以类必须被声明为 abstract
  public abstract void eat();

  public abstract void sleep();
}